/******************************************************************************* 
 *  Copyright 2008 Amazon Technologies, Inc.
 *  Licensed under the Apache License, Version 2.0 (the "License"); 
 *  
 *  You may not use this file except in compliance with the License. 
 *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
 *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
 *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
 *  specific language governing permissions and limitations under the License.
 * ***************************************************************************** 
 *    __  _    _  ___ 
 *   (  )( \/\/ )/ __)
 *   /__\ \    / \__ \
 *  (_)(_) \/\/  (___/
 * 
 *  Amazon Simple DB CSharp Library
 *  API Version: 2007-11-07
 *  Generated: Thu Mar 19 02:28:00 PDT 2009 
 * 
 */

using System;
using System.Xml.Serialization;
using System.Collections.Generic;
using Amazon.SimpleDB;
using Amazon.SimpleDB.Mock;
using Amazon.SimpleDB.Model;

namespace Amazon.SimpleDB.Samples
{

    /// <summary>
    /// Amazon Simple DB  Samples
    /// </summary>
    public class AmazonSimpleDBSamples 
    {
    
       /**
        * Samples for Amazon Simple DB functionality
        */
        public static void Main(string [] args) 
        {
            Console.WriteLine("===========================================");
            Console.WriteLine("Welcome to Amazon Simple DB Samples!");
            Console.WriteLine("===========================================");

            Console.WriteLine("To get started:");
            Console.WriteLine("===========================================");
            Console.WriteLine("  - Fill in your AWS credentials");
            Console.WriteLine("  - Uncomment sample you're interested in trying");
            Console.WriteLine("  - Set request with desired parameters");
            Console.WriteLine("  - Hit F5 to run!");
            Console.WriteLine();

            Console.WriteLine("===========================================");
            Console.WriteLine("Samples Output");
            Console.WriteLine("===========================================");
            Console.WriteLine();

           /************************************************************************
            * Access Key ID and Secret Acess Key ID, obtained from:
            * http://aws.amazon.com
            ***********************************************************************/
            String accessKeyId = "<Your Access Key ID>";
            String secretAccessKey = "<Your Secret Access Key>";
        
            /************************************************************************
            * Instantiate  Implementation of Amazon Simple DB 
            ***********************************************************************/
            AmazonSimpleDB service = new AmazonSimpleDBClient(accessKeyId, secretAccessKey);
        
            /************************************************************************
            * Uncomment to try advanced configuration options. Available options are:
            *
            *  - Signature Version
            *  - Proxy Host and Proxy Port
            *  - Service URL
            *  - User Agent String to be sent to Amazon Simple DB  service
            *
            ***********************************************************************/
            // AmazonSimpleDBConfig config = new AmazonSimpleDBConfig();
            // config.SignatureVersion = "0";
            // AmazonSimpleDB service = new AmazonSimpleDBClient(accessKeyId, secretAccessKey, config);
        
        
            /************************************************************************
            * Uncomment to try out Mock Service that simulates Amazon Simple DB 
            * responses without calling Amazon Simple DB  service.
            *
            * Responses are loaded from local XML files. You can tweak XML files to
            * experiment with various outputs during development
            *
            * XML files available under Amazon\SimpleDB\Mock tree
            *
            ***********************************************************************/
            // AmazonSimpleDB service = new AmazonSimpleDBMock();


            /************************************************************************
            * Uncomment to invoke Create Domain Action
            ***********************************************************************/
            // CreateDomainRequest request = new CreateDomainRequest();
            // @TODO: set request parameters here
            // CreateDomainSample.InvokeCreateDomain(service, request);
            /************************************************************************
            * Uncomment to invoke List Domains Action
            ***********************************************************************/
            // ListDomainsRequest request = new ListDomainsRequest();
            // @TODO: set request parameters here
            // ListDomainsSample.InvokeListDomains(service, request);
            /************************************************************************
            * Uncomment to invoke Domain Metadata Action
            ***********************************************************************/
            // DomainMetadataRequest request = new DomainMetadataRequest();
            // @TODO: set request parameters here
            // DomainMetadataSample.InvokeDomainMetadata(service, request);
            /************************************************************************
            * Uncomment to invoke Delete Domain Action
            ***********************************************************************/
            // DeleteDomainRequest request = new DeleteDomainRequest();
            // @TODO: set request parameters here
            // DeleteDomainSample.InvokeDeleteDomain(service, request);
            /************************************************************************
            * Uncomment to invoke Put Attributes Action
            ***********************************************************************/
            // PutAttributesRequest request = new PutAttributesRequest();
            // @TODO: set request parameters here
            // PutAttributesSample.InvokePutAttributes(service, request);
            /************************************************************************
            * Uncomment to invoke Batch Put Attributes Action
            ***********************************************************************/
            // BatchPutAttributesRequest request = new BatchPutAttributesRequest();
            // @TODO: set request parameters here
            // BatchPutAttributesSample.InvokeBatchPutAttributes(service, request);
            /************************************************************************
            * Uncomment to invoke Get Attributes Action
            ***********************************************************************/
            // GetAttributesRequest request = new GetAttributesRequest();
            // @TODO: set request parameters here
            // GetAttributesSample.InvokeGetAttributes(service, request);
            /************************************************************************
            * Uncomment to invoke Delete Attributes Action
            ***********************************************************************/
            // DeleteAttributesRequest request = new DeleteAttributesRequest();
            // @TODO: set request parameters here
            // DeleteAttributesSample.InvokeDeleteAttributes(service, request);
            /************************************************************************
            * Uncomment to invoke Query Action
            ***********************************************************************/
            // QueryRequest request = new QueryRequest();
            // @TODO: set request parameters here
            // QuerySample.InvokeQuery(service, request);
            /************************************************************************
            * Uncomment to invoke Select Action
            ***********************************************************************/
            // SelectRequest request = new SelectRequest();
            // @TODO: set request parameters here
            // SelectSample.InvokeSelect(service, request);
            /************************************************************************
            * Uncomment to invoke Query With Attributes Action
            ***********************************************************************/
            // QueryWithAttributesRequest request = new QueryWithAttributesRequest();
            // @TODO: set request parameters here
            // QueryWithAttributesSample.InvokeQueryWithAttributes(service, request);
            Console.WriteLine();
            Console.WriteLine("===========================================");
            Console.WriteLine("End of output. You can close this window");
            Console.WriteLine("===========================================");

            System.Threading.Thread.Sleep(50000);
        }

    }
}
